完整流程 | 闲鱼哪些东西好卖?我帮你分析出来了!
The following article is from 煎蛋搞钱 Author 煎蛋哥
本篇文章将介绍从闲鱼获取合适商品的完整思路,供大家参考
# 1. 分析
对于有货源优势的个人商家,直接在闲鱼 App 中上架商品,然后选择一种方式( 比如,通过 某鱼币或鱼塘 )去推广即可
而大部分的普通人并不存在货源优势,这时候我们需要通过下面 3 个步骤去完成选品
对 App 进行日常训练
通过数据分析获取热门商品
结合自身优势进行消化理解,完成商品上架
# 2. 日常训练
App 日常训练作为最重要的一步,帮助我们筛选出有用数据,过滤掉大部分的无效信息
2-1 定制我的频道
入口:App 首页 - 闲鱼( 底部 Tab ) - Tab 管理页面( 频道切换 Tab )
进入到我的频道页面,就可以根据自己的优势( 卖东西分类 )选择首页展示的频道
2-2 定向搜索
入口:App 首页 - 闲鱼( 底部 Tab ) - 搜索输入框(输入关键字)- 点击搜索按钮
在 App 搜索输入框内输入关键字,点击搜索,可以进行一次定向查询
每一次的定向查询都会影响都会影响首页「 猜你喜欢 」Tab 页面展示的内容
2-3 日常训练
在首页商品 Tab 页面或定向关键字搜索结果列表中,对于没有意义的商品可以长按 Item,选择「 屏蔽同类商品 」区域
这样,后面就不会展示该商品同类的商品出来了
# 3. 数据分析
通过上面的操作,我们可以使用自动化爬取数据进行一波分析了
这里以「 猜你喜欢 」Tab 页面为目标页面,使用 AutoJS 爬取数据为例进行讲解
3-1 打开 App,清除剪切板,首页完全加载
function main() {
log("启动闲鱼,开始爬虫。。。")
//启动闲鱼之前,清除剪切板
setClip("");
app.launchApp("闲鱼")
//等待到达首页
text("会玩").findOne();
log("【闲鱼】首页加载成功")
...
}
3-2 获取商品信息
获取商品标题、热度( 即:想要人数 )、价格
...
//商品列表
var goods = id("com.*.*:id/cardview_61801").find()
for (var i = 0; i < goods.length; i++) {
log("遍历商品")
//每一条商品
var good = goods[i];
//标题
var title_element = good.findOne(id("com.*.*:id/content_title"))
//热度
var hot_element = good.findOne(id("com.*.*:id/hot_point"))
if (title_element && hot_element) {
//标题内容
var title = title_element.text()
//热度(正则匹配)
var hot = Number(hot_element.text().replace(/人想要/, ''))
//价格
var price = good.findOne(id("com.*.*:id/price")).text().replace(/¥/, '')+"元"
...
3-3 热度及黑名单关键字过滤,进入商品详情
通过自定义「 热度 」的下线,商品热度大于这个值的才为有效数据
另外,通过「 黑名单 」关键字列表,将标题栏包含这些信息的商品过滤掉
PS:「 商品价格 」同样可以设置一个上限值,超过这个值的商品不进行采集
//热度下线
var hot_min =1000
//价格最高
var high_price = 100
//屏蔽关键字
var black_words_list = ["洗衣机","餐桌","烤箱","书桌"...]
...
//热度下线
if (hot < hot_min) {
log("商品热度为:" + hot + ",太低不采集!")
continue;
}else if(is_black(title)){
log("商品标题为:",title,",踩到黑名单,不采集!");
continue;
}else if(is_been_catched(title)){
log("商品标题为:",title,",之前被采集过,这里不重复采集!");
}
log("标题内容为:" + title + ",热度:" + hot+",价格:"+price)
good.click()
log("点击进入到商品详情。。。")
sleep_random()
...
对满足条件的商品,模拟点击跳转到商品详情页面
3-4 过滤广告
商品列表中会包含一些商品广告,我们通过正常商品、广告商品的页面元素区别,过滤掉广告商品
...
if (text("商品详情页").findOnce()) {
log("这是一条广告。。。")
back()
continue;
}
...
3-5 获取口令码
在商品详情页面,点击右上角的分享图标,在分享对话框中,点击「 T 口令 」按钮,这样商品的口令码就复制到剪切板了
//复制口令
var copy_code = true;
//点击某个元素,知道一个元素出现
function click_sure(target_element,next_selector){
//点击元素
while(true){
//点击元素
click(target_element.centerX(), target_element.centerY());
//如果next_selector为null,或者找到下一页面的元素
if(!next_selector || (next_selector&&next_selector.findOnce())){
break
}
sleep(1000)
}
}
...
var share_element = desc("分享").findOne(6000).bounds();
click_sure(share_element,desc("...口令"))
log("点击淘口令,拷贝到剪切板")
//等待分享对话框出现
if(copy_code){
desc("...口令").findOne(6000).parent().click()
}
sleep_random()
...
3-6 去重及循环滑动页面
由于滑动页面可能会出现重复的商品,这里根据商品的标题对采集的数据集进行去重
//爬取数据结果集
var results = []
//回退到主界面
function back_main_page() {
//判断是否在主界面
while (true) {
if (currentActivity() == 'com.*.*.home.activity.MainActivity') {
break;
} else {
back();
}
sleep(1000)
}
}
...
let obj = {}
results = results.reduce(function (item, next) {
obj[next.title] ? '' : obj[next.title] = true && item.push(next)
return item
}, [])
sleep_random()
//回退两次到桌面
back_main_page()
...
3-7 发送微信群聊
根据配置信息采集完数据后,最后将采集结果发送到对应的微信群中
function send_wx_msg(group_name,results){
//如果休眠,唤醒设备
log("爬取完成!准备分享到微信群。。。")
device.wakeUpIfNeeded()
app.launch("com.tencent.mm");
text("微信").waitFor()
//点击进入到聊天界面
var chat_element_bounds = text(group_name).findOne().bounds();
click_sure(chat_element_bounds,id("auj"))
sleep(3000)
results.forEach((item) => {
//发信息
log("准备发送微信出去。。。。")
//数据转换
id("auj").className("EditText").findOne().setText(JSON.stringify(item))
sleep(3000)
//发送
text("发送").click()
})
log("发送成功!")
//返回
back();
home();
}
# 4. 总结一下
通过上面的一系列操作,就可以从训练后的商品列表中采集到合适的商品进行上架了
需要注意的是,由于 App 分享频次的功能限制,配置 T 口令复制次数最好限制在 10 个商品以下
我已将文中所有源码上传到下方公众号后台,关注「 煎蛋搞钱 」后回复关键字「 xyxp 」即可以获取
如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!